﻿using System;
using System.Data.SQLite;
using System.IO;

namespace Bcmm.Chart.Common
{
    /// <summary>
    /// SQLite数据库帮助类。
    /// </summary>
    public class SQLiteHelper : IDisposable
    {
        public string _tempDataSource { get; set; }

        /// <summary>
        /// 创建一个临时本地的数据库连接。
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public SQLiteConnection CreateTempLocalConnection()
        {
            _tempDataSource = Guid.NewGuid().ToString("N") + ".db";

            while(File.Exists(_tempDataSource + ".db"))
            {
                _tempDataSource = Guid.NewGuid().ToString("N") + ".db";
            }

            SQLiteConnection.CreateFile(_tempDataSource);
            SQLiteConnection connection = new SQLiteConnection();

            connection.ConnectionString = $"Data Source = {_tempDataSource}";

            return connection;
        }

        /// <summary>
        /// 删除临时数据库文件。
        /// </summary>
        public void Dispose()
        {
            if(File.Exists(_tempDataSource))
            {
                File.Delete(_tempDataSource);
            }
        }
    }
}
